/***************************************************************************
 * File name: IEPubBuffer.h
 * Original author: caizhifei2003@163.com
 * Date: 2013.03.03
 ***************************************************************************/
#ifndef _I_EPUB_BUFFER_H_
#define _I_EPUB_BUFFER_H_

#include "EPubBase.h"
#include "EPubTypes.h"

class IEPubBuffer : public EPubBase
{
public:
	virtual const EPUB_Byte *GetBuffer() const = 0;
	virtual EPUB_Size GetBufferSize() const = 0;
	virtual EPUB_Byte *UseBuffer() = 0;

	virtual void SetBufferSize(EPUB_Size size) = 0;
	virtual void SetBuffer(const EPUB_Byte *buffer, EPUB_Size size) = 0;
	virtual void SetBuffer(const IEPubBuffer &other) = 0;

	virtual void Clear() = 0;

	virtual IEPubBuffer &operator =(const IEPubBuffer &other) = 0;
};

#endif // _I_EPUB_BUFFER_H_